c# MES 对接之二(MQTT、Restful、RabbitMQ)

您所在的位置:网站首页 rabbitmq 源码 c# MES 对接之二(MQTT、Restful、RabbitMQ)

c# MES 对接之二(MQTT、Restful、RabbitMQ)

2023-06-16 03:51| 来源: 网络整理| 查看: 265

//以下是C# MES对接的示例代码:

//1. MQTT

//使用M2Mqtt库实现C#与MQTT的通信,示例代码如下:

//csharp using System; using System.Text; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages;

class Program {     static void Main(string[] args)     {         // 创建MQTT客户端实例         MqttClient client = new MqttClient("localhost");

        // 注册连接事件         client.MqttMsgConnected += Client_MqttMsgConnected;

        // 注册消息接收事件         client.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;

        // 连接到MQTT服务器         client.Connect(Guid.NewGuid().ToString());

        // 订阅主题         client.Subscribe(new string[]  { "test" },

                                  new byte[] { MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE  }

                                 );

        // 发布消息         client.Publish("test", Encoding.UTF8.GetBytes("Hello, MQTT!"));     }

    private static void Client_MqttMsgConnected(object sender, MqttMsgConnectEventArgs e)     {         Console.WriteLine("Connected to MQTT broker.");     }

    private static void Client_MqttMsgPublishReceived(object sender,

                                                                                     MqttMsgPublishEventArgs e)     {         Console.WriteLine("Received message: " + Encoding.UTF8.GetString(e.Message));     } } //

//2. Restful

//使用HttpClient库实现C#与Restful的通信,示例代码如下:

//csharp using System; using System.Net.Http; using System.Threading.Tasks;

class Program {     static async Task Main(string[] args)     {         // 创建HttpClient实例         HttpClient client = new HttpClient();

        // 发送GET请求         HttpResponseMessage response = await client.GetAsync("http://localhost:8080/api/test");

        // 获取响应内容         string content = await response.Content.ReadAsStringAsync();

        // 输出响应内容         Console.WriteLine(content);     } } //

//3. RabbitMQ

//使用RabbitMQ.Client库实现C#与RabbitMQ的通信,示例代码如下:

//csharp using System; using System.Text; using RabbitMQ.Client; using RabbitMQ.Client.Events;

class Program {     static void Main(string[] args)     {         // 创建RabbitMQ连接工厂         ConnectionFactory factory = new ConnectionFactory()         {             HostName = "localhost",             UserName = "guest",             Password = "guest"         };

        // 创建RabbitMQ连接         using (IConnection connection = factory.CreateConnection())         {             // 创建RabbitMQ通道             using (IModel channel = connection.CreateModel())             {                 // 定义队列                 channel.QueueDeclare(queue: "test",                                      durable: false,                                      exclusive: false,                                      autoDelete: false,                                      arguments: null);

                // 注册消息接收事件                 EventingBasicConsumer consumer = new EventingBasicConsumer(channel);                 consumer.Received += (model, ea) =>                 {                     byte[] body = ea.Body.ToArray();                     string message = Encoding.UTF8.GetString(body);                     Console.WriteLine("Received message: " + message);                 };                 channel.BasicConsume(queue: "test",                                      autoAck: true,                                      consumer: consumer);

                // 发布消息                 string message = "Hello, RabbitMQ!";                 byte[] body = Encoding.UTF8.GetBytes(message);                 channel.BasicPublish(exchange: "",                                      routingKey: "test",                                      basicProperties: null,                                      body: body);             }         }     } } //



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3